<?php
$begintime = microtime(true);
require('lib/templatepower.class.php');
require('lib/mysql.class.php');
require('lib/functions.php');
require('conf.php');

$tpl = new TemplatePower('viewallwords.htm');
$tpl->Prepare();

// Показ количества страниц
$nums = $db->QuerySingleValue('SELECT COUNT(`id`) FROM `eng_main`');

if (isset($_GET['wordtype']))
{
	if (check_int($_GET['wordtype']) == false)
	{
		die();
	}
	else 
	{
		$word_type = (int) $_GET['wordtype'];
		$where = '`eng_refers`.`id`='.$word_type;
	}
}
else 
{
	$where = 1;
}

// Главный запрос на показ списка слов
$db->Query('SELECT `eng_words`.`name`, /* Имя слова */
			`eng_words`.`translate`, /* Перевод слова */
			`eng_refers`.`name` AS `type`, /* Часть речи */
			/* Вложенный запрос. Показывает количество употреблений слова на страницах */
			(SELECT COUNT(`url_id`) 
			FROM `eng_assign` 
			WHERE `eng_assign`.`word_id`=`eng_words`.`id`) AS `chast`,
			/* Вложенный запрос. Показывает общее количество употреблений слова */
			(SELECT SUM(`eng_assign`.`count`) 
			FROM `eng_assign` 
			WHERE `eng_assign`.`word_id` = `eng_words`.`id`) AS `cnt` 
			FROM `eng_words` 
			LEFT JOIN `eng_refers` 
			  ON `eng_words`.`type`=`eng_refers`.`id` 
			WHERE '.$where.'
			ORDER BY `chast` DESC 
			LIMIT 0, 100');

$i = 0;
while (!$db->EndOfSeek())
{
	$info = $db->Row();
	$i++;
	if ($i%2 == 0)
	{
		$tpl->assign('oddeven', 'odd');
	}
	else 
	{
		$tpl->assign('oddeven', 'even');
	}
	$procent = ceil(($info->chast*100)/$nums);
	$tpl->newBlock('list');
	$tpl->assign('n', $i);
	$tpl->assign('word', $info->name);
	$tpl->assign('translate', $info->translate);
	$tpl->assign('procent', $procent);
	$tpl->assign('count', $info->cnt);
	$tpl->assign('type', $info->type);
}

$tpl->printToScreen();
$endtime = microtime(true) - $begintime;
echo $endtime;
?>